﻿/**
 *
 * @file NCTDialogLayUpOwned.h
 * @brief 多层声学包 层信息添加插入编辑窗口
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-16
 *
 */
#ifndef _GUINCTDialogLayUpOwned_H_
#define _GUINCTDialogLayUpOwned_H_


#include "AbstractPhysicsDialog.h"
#include "FITK_Component/FITKAcousticsPhysics/FITKAcousticsNCTLayUp.h"
#include <QComboBox>
namespace Ui
{
    class NCTDialogLayUpOwned1;
    class NCTDialogLayUpOwned2;
}

namespace GUI
{
    /**
     * @brief 多层声学包 层信息添加插入编辑窗口
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-16
    */
    class NCTDialogLayUpOwned : public AbstractMaterialDialog
    {
        Q_OBJECT
    public:
        /**
         * @brief 构造函数
         * @param[i]  data        层对象
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        explicit NCTDialogLayUpOwned(Acoustics::FITKAcousticsNCTAbstractLayObj *data);
        /**
         * @brief 析构函数
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        ~NCTDialogLayUpOwned();

    private:
        /**
         * @brief 初始化除了多孔型的所有类型ui
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        void init1();
        /**
         * @brief 初始化除了多孔型的所有类型数据
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        void init1Data();
        /**
         * @brief 初始化多孔型ui和数据
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        void init2();
        /**
        * @brief 初始化下拉框
        * @param[i]  type       材料类型
                                1   Foam
                                2   Fiber
                                3   IsoSoild
                                4   Fluid
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-16
        */
        void initComboBox(QComboBox*, int type);
        /**
        * @brief 检查输入
        * @return true  输入没有错误
        * @return false  输入有错误
        * @author LiBaojun (libaojunqd@foxmail.com)
        * @date 2024-12-06
        */
        bool checkInput();


    private slots:
        /**
         * @brief 除了多孔型的所有类型确定按钮槽函数
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        void on_pushButton_OK_clicked();
        /**
         * @brief 除了多孔型的所有类型取消按钮槽函数
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        void on_pushButton_Cancel_clicked();
        /**
         * @brief 多孔型确定按钮槽函数
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        void on_pushButton_OKPerforated_clicked();
        /**
         * @brief 多孔型消按钮槽函数
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        void on_pushButton_CancelPerforated_clicked();

        void on_radioButton_Limp_toggled(bool checked);
        void on_radioButton_Foam_toggled(bool checked);
        void on_radioButton_Geometry_toggled(bool checked);
        void on_radioButton_BiotProperties_toggled(bool checked);
       
    private:
        /**
         * @brief 除了多孔型 UI对象
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        Ui::NCTDialogLayUpOwned1 *_ui1{};
         /**
          * @brief 多孔型 UI对象
          * @author wangning (2185896382@qq.com)
          * @date 2024-12-16
          */
        Ui::NCTDialogLayUpOwned2 *_ui2{};
        /**
         * @brief  层类型
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        Acoustics::FITKAcousticsNCTAbstractLayObj::NCTLayUpType _ntcType{ Acoustics::FITKAcousticsNCTAbstractLayObj::None };
        /**
         * @brief  单层包
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        Acoustics::FITKAcousticsNCTAbstractLayObj * _data{};
    };
}
#endif 
